home *** CD-ROM | disk | FTP | other *** search
/ Sony Imagesoft Sampler / Sony Imagesoft Sampler.iso / setup / setup.mst < prev    next >
Text File  |  1994-08-25  |  15KB  |  432 lines

  1. '**************************************************************************
  2. '*                       Setup
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST ADDHELP       = 900
  19. CONST QTNONE        = 1100
  20. CONST QTOLDER       = 1200
  21. CONST QTNEWER       = 1300
  22. CONST QTINCOMPLETE  = 1400
  23. CONST MODELESS      = 5000
  24. CONST TOOBIG        = 6300
  25. CONST BADPATH       = 6400
  26.  
  27. ''Bitmap ID
  28. 'CONST LOGO = 1
  29.  
  30. GLOBAL CUIDLL$
  31. GLOBAL WinDrive$        ''Drive letter Windows is installed.
  32. GLOBAL SrcDir$          ''Drive letter Windows is installed.
  33. GLOBAL QTWSrcDir$       ''Drive letter Windows is installed.
  34. GLOBAL DestDir$         ''Default destination directory for QT.
  35. GLOBAL FileCount%      
  36. GLOBAL AutoexecWasModified% 
  37. GLOBAL szSectionYear%
  38. GLOBAL szSectionMonth%
  39. GLOBAL szSectionDay%
  40.  
  41. DECLARE SUB      PromptQT (szType%)
  42. DECLARE SUB      CreateIcon
  43. DECLARE FUNCTION QTFilesOkay (szTemp$) AS INTEGER
  44. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  45. DECLARE FUNCTION VerifyDate (szDate$) AS INTEGER
  46. DECLARE FUNCTION GetNewDestination ( szDir$ ) AS STRING
  47.  
  48. INIT:
  49.     SetTitle "Sony Sampler"
  50.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  51.  
  52.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  53.     IF szInf$ = "" THEN
  54.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  55.     END IF
  56.     ReadInfFile szInf$
  57.  
  58.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  59.     IF IsDriveValid(WinDrive$) = 0 THEN
  60.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  61.         GOTO QUIT
  62.     END IF
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", 0, "")
  66.     IF sz$ = "CONTINUE" THEN
  67.         UIPop 1
  68.     ELSE
  69.         GOSUB ASKQUIT
  70.         GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74.     FileCount% = 12
  75.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  76.     QTWSrcDir = MakePath(SrcDir$,"QTW")
  77.     AutoexecWasModified% = 0
  78.     ClearCopyList
  79.  
  80.  
  81.     IF QTFilesOkay("") = 0 THEN
  82.         IF AutoexecWasModified% = 1 THEN
  83. PROMPT:
  84.                 sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", 0, "")
  85.                 IF sz$ = "CONTINUE" THEN
  86.                         UIPop 1
  87.                          PrependToPath "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.QTW", DestDir$, cmoOverwrite
  88.                 ELSEIF sz$ = "REACTIVATE" THEN
  89.                         GOTO PROMPT
  90.                 ELSEIF sz$ = "EXIT" THEN
  91.                         GOSUB ASKQUIT
  92.                         GOTO PROMPT
  93.                 END IF
  94.  
  95.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  96.                         CopyFile "C:\AUTOEXEC.BAT", "C:\AUTOEXEC.BAK", cmoOverwrite, 0
  97.                         CopyFile "C:\AUTOEXEC.QTW", "C:\AUTOEXEC.BAT", cmoOverwrite, 0
  98.                           RemoveFile "C:\AUTOEXEC.QTW", cmoForce
  99.                 ENDIF
  100.         ENDIF
  101.         CopyFilesInCopyList
  102.     ENDIF
  103.  
  104.     CreateIcon
  105.  
  106.     IF AutoexecWasModified% = 1 THEN
  107. WARN:
  108.         sz$ = UIStartDlg(CUIDLL$, ADDHELP, "FInfoDlgProc", 0, "")
  109.         IF sz$ = "REACTIVATE" THEN
  110.                 GOTO WARN
  111.         ENDIF
  112.         UIPop 1
  113.     ENDIF
  114.  
  115.  
  116. QUIT:
  117.     ON ERROR GOTO ERRQUIT
  118.  
  119.     IF ERR = 0 THEN
  120.         dlg% = EXITSUCCESS
  121.     ELSEIF ERR = STFQUIT THEN
  122.         dlg% = EXITQUIT
  123.     ELSE
  124.         dlg% = EXITFAILURE
  125.     END IF
  126. QUITL1:
  127.     IF dlg% = EXITQUIT THEN
  128.         UIPop 1
  129.         END
  130.     ELSEIF dlg% = EXITFAILURE THEN
  131.         dlg% = EXITQUIT
  132.     END IF
  133.  
  134.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  135.     IF sz$ = "REACTIVATE" THEN
  136.         GOTO QUITL1
  137.     END IF
  138.     UIPop 1
  139.     END
  140.  
  141. ERRQUIT:
  142.     i% = DoMsgBox("Setup sources were corrupted.", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  143.     END
  144.  
  145.  
  146.  
  147. BADPATH:
  148.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  149.     IF sz$ = "REACTIVATE" THEN
  150.         GOTO BADPATH
  151.     END IF
  152.     UIPop 1
  153.     RETURN
  154.  
  155. ASKQUIT:
  156.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  157.  
  158.     IF sz$ = "EXIT" THEN
  159.         UIPopAll
  160.         ERROR STFQUIT
  161.     ELSEIF sz$ = "REACTIVATE" THEN
  162.         GOTO ASKQUIT
  163.     ELSE
  164.         UIPop 1
  165.     END IF
  166.     RETURN
  167.  
  168.  
  169. '** Purpose:
  170. '**     Appends a file name to the end of a directory path,
  171. '**     inserting a backslash character as needed.
  172. '** Arguments:
  173. '**     szDir$  - full directory path (with optional ending "\")
  174. '**     szFile$ - filename to append to directory
  175. '** Returns:
  176. '**     Resulting fully qualified path name.
  177. '*************************************************************************
  178. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  179.     IF szDir$ = "" THEN
  180.         MakePath = szFile$
  181.     ELSEIF szFile$ = "" THEN
  182.         MakePath = szDir$
  183.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  184.         MakePath = szDir$ + szFile$
  185.     ELSE
  186.         MakePath = szDir$ + "\" + szFile$
  187.     END IF
  188. END FUNCTION
  189.  
  190. '**
  191. '** Purpose:
  192. '** Arguments:
  193. '** Returns:
  194. '*************************************************************************
  195. FUNCTION QTFilesOkay (szTemp$) STATIC AS INTEGER
  196.  
  197.         sz$ = UIStartDlg(CUIDLL$, MODELESS, "FModelessDlgProc", 0, "")
  198.         QTFilesOkay = 1
  199.         szFile$ = GetSectionKeyFilename("Quick Time", "QT 1")
  200.         szDir$ = FindFileUsingFileOpen(szFile$)
  201.         IF szDir$ = "" THEN                             '' FILE NOT FOUND 
  202.                 UIPop 1
  203.                 PromptQT QTNONE
  204.                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  205.                         szDir$ = WinDrive$ + ":\QTW\BIN"
  206.                         szDir$ = GetNewDestination(szDir$)
  207.                         IF DoesDirExist(szDir$) = 0 THEN
  208.                                 CreateDir szDir$, cmoNone
  209.                         END IF
  210.                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  211.                         DestDir$ = szDir$
  212.                         AutoexecWasModified% = 1
  213.                         QTFilesOkay = 0
  214.                 END IF
  215.         ELSE                                            '' FILE WAS FOUND
  216.                 szDate$ = GetDateOfFile(szDir$)
  217.                 szDir$ = MID$(szDir$, 1, (LEN(szDir$) - LEN(szFile$) - 1))
  218.                 szSectionDate$ = GetSectionKeyDate("Quick Time", "QT 1")
  219.                 szSectionYear% = GetYearFromDate(szSectionDate$)
  220.                 szSectionMonth% = GetMonthFromDate(szSectionDate$)
  221.                 szSectionDay% = GetDayFromDate(szSectionDate$)
  222.  
  223.                 tmpVal% = VerifyDate(szDate$)
  224.                 IF tmpVal% <> 0 THEN
  225.                         UIPop 1
  226.                         IF tmpVal% = 1 THEN
  227.                                 PromptQT QTOLDER
  228.                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  229.                                         szTmp$ = szDir$
  230.                                         szDir$ = GetNewDestination(szTmp$)
  231.                                         IF szDir$ <> szTmp$ THEN
  232.                                                 AutoexecWasModified% = 1
  233.                                                 IF DoesDirExist(szDir$) = 0 THEN
  234.                                                         CreateDir szDir$, cmoNone
  235.                                                 END IF
  236.                                         ENDIF
  237.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  238.                                         QTFilesOkay = 0
  239.                                 ENDIF
  240.                         ELSE
  241.                                 PromptQT QTNEWER
  242.                                 IF GetSymbolValue("ButtonChecked") = "2" THEN
  243.                                         szTmp$ = szDir$
  244.                                         szDir$ = GetNewDestination(szTmp$)
  245.                                         IF szDir$ <> szTmp$ THEN
  246.                                                 AutoexecWasModified% = 1
  247.                                                 IF DoesDirExist(szDir$) = 0 THEN
  248.                                                         CreateDir szDir$, cmoNone
  249.                                                 END IF
  250.                                         ENDIF
  251.                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  252.                                         QTFilesOkay = 0
  253.                                 ENDIF
  254.                         ENDIF
  255.                 ELSE
  256.                         FOR i% = 2 TO FileCount% STEP 1
  257.                                 szKey$ = "QT" + STR$(i%)
  258.                                 szFile$ = GetSectionKeyFilename("Quick Time", szKey$)
  259.                                 szFullPathFile$ = MakePath(szDir$, szFile$)
  260.                                 szDate$ = GetDateOfFile(szFullPathFile$)
  261.                                 IF DoesFileExist(szFullPathFile$, femExists) = 0 THEN
  262.                                 UIPop 1
  263.                                         PromptQT QTINCOMPLETE
  264.                                         IF GetSymbolValue("ButtonChecked") = "1" THEN
  265.                                                 szTmp$ = szDir$
  266.                                                 szDir$ = GetNewDestination(szTmp$)
  267.                                                 IF szDir$ <> szTmp$ THEN
  268.                                                         AutoexecWasModified% = 1
  269.                                                         IF DoesDirExist(szDir$) = 0 THEN
  270.                                                                 CreateDir szDir$, cmoNone
  271.                                                         END IF
  272.                                                 ENDIF
  273.                                                 AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  274.                                                 QTFilesOkay = 0
  275.                                         ENDIF
  276.                                         i% = FileCount%
  277.                         ELSE 
  278.                         tmpVal% = VerifyDate (szDate$)
  279.                         IF tmpVal% <> 0 THEN
  280.                                 UIPop 1
  281.                             PromptQT QTINCOMPLETE
  282.                                                 IF GetSymbolValue("ButtonChecked") = "1" THEN
  283.                                                         szTmp$ = szDir$
  284.                                                         szDir$ = GetNewDestination(szTmp$)
  285.                                                         IF szDir$ <> szTmp$ THEN
  286.                                                                 AutoexecWasModified% = 1
  287.                                                                 IF DoesDirExist(szDir$) = 0 THEN
  288.                                                                         CreateDir szDir$, cmoNone
  289.                                                                 END IF
  290.                                                         ENDIF
  291.                                                         AddSectionFilesToCopyList "Quick Time", QTWSrcDir$, szDir$
  292.                                                         QTFilesOkay = 0
  293.                                                 ENDIF
  294.                                                 i% = FileCount%
  295.                         ELSEIF i% = 12 THEN
  296.                                 UIPop 1
  297.                         ENDIF
  298.                         ENDIF
  299.                         NEXT i%
  300.                 END IF
  301.         END IF
  302. END FUNCTION
  303.  
  304.  
  305. '**
  306. '** Purpose: 
  307. '** Arguments:
  308. '** Returns:
  309. '**     0=same, 1=older, 2=newer -- than section date
  310. '*************************************************************************
  311. FUNCTION VerifyDate ( szDate$ ) STATIC AS INTEGER
  312.  
  313.         VerifyDate = 0
  314.         newval% = GetYearFromDate(szDate$)
  315.         IF (newval% <> szSectionYear%) THEN
  316.                 IF (newval% < szSectionYear%) THEN
  317.                         VerifyDate = 1
  318.                 ELSE
  319.                         VerifyDate = 2
  320.                 END IF
  321.                 GOTO DONE1
  322.         END IF
  323.  
  324.         newval% = GetMonthFromDate(szDate$)
  325.         IF (newval% <> szSectionMonth%) THEN
  326.                 IF (newval% < szSectionMonth%) THEN
  327.                         VerifyDate = 1
  328.                 ELSE
  329.                         VerifyDate = 2
  330.                 END IF
  331.                 GOTO DONE1
  332.         END IF
  333.  
  334.         newval% = GetDayFromDate(szDate$)
  335.         IF (newval% <> szSectionDay%) THEN
  336.                 IF (newval% < szSectionDay%) THEN
  337.                         VerifyDate = 1
  338.                 ELSE
  339.                         VerifyDate = 2
  340.                 END IF
  341.                 GOTO DONE1
  342.         END IF
  343. DONE1:
  344.  
  345. END FUNCTION
  346.  
  347.  
  348. '**
  349. '** Purpose: 
  350. '** Arguments:
  351. '** Returns:
  352. '*************************************************************************
  353. FUNCTION GetNewDestination ( szDir$ ) STATIC AS STRING
  354.  
  355.         GetNewDestination = szDir$        
  356. GETPATH:
  357.         SetSymbolValue "EditTextIn", szDir$
  358.         SetSymbolValue "EditFocus", "END"
  359.  
  360. GETPATHL1:
  361.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  362.  
  363.     IF sz$ = "CONTINUE" THEN
  364.         GetNewDestination = GetSymbolValue("EditTextOut")
  365.         UIPop 1
  366.     ELSEIF sz$ = "REACTIVATE" THEN
  367.         GOTO GETPATHL1
  368.     ELSEIF sz$ = "EXIT" THEN
  369.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  370. TMP1:
  371.         IF sz$ = "EXIT" THEN
  372.                 UIPopAll
  373.                 ERROR STFQUIT
  374.         ELSEIF sz$ = "REACTIVATE" THEN
  375.                 GOTO TMP1
  376.         ELSE
  377.                 UIPop 1
  378.         END IF
  379.         GOTO GETPATHL1
  380.     ELSE
  381.         UIPop 1
  382.     END IF
  383.  
  384. END FUNCTION
  385.  
  386. '**
  387. '** Purpose: 
  388. '** Arguments:
  389. '** Returns:
  390. '*************************************************************************
  391. SUB PromptQT (szType%) STATIC
  392.  
  393.         SetSymbolValue "ButtonChecked", "1"
  394. QT1:
  395.         sz$ = UIStartDlg(CUIDLL$, szType%, "FRadioDlgProc", 0, "")
  396.         IF sz$ = "CONTINUE" THEN
  397.                 UIPop 1
  398.         ELSEIF sz$ = "REACTIVATE" THEN
  399.                 GOTO QT1
  400.         ELSEIF sz$ = "EXIT" THEN
  401.                 sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  402. QT2:
  403.                 IF sz$ = "EXIT" THEN
  404.                         UIPopAll
  405.                         ERROR STFQUIT
  406.                 ELSEIF sz$ = "REACTIVATE" THEN
  407.                         GOTO QT2
  408.                 ELSE
  409.                         UIPop 1
  410.                 END IF
  411.                 GOTO QT1
  412.         END IF
  413. END SUB
  414.  
  415. '**
  416. '** Purpose: Creates a Program Group and a Program Item
  417. '** Arguments: None
  418. '** Returns: Nothing
  419. '*************************************************************************
  420. SUB CreateIcon STATIC
  421.  
  422.     CreateProgmanGroup "Sony Sampler", "", cmoNone
  423.     ShowProgmanGroup  "Sony Sampler", 1, cmoNone
  424.     CreateProgmanItem "Sony Sampler", "Sony Sampler", MakePath(SrcDir$,"DEMOMENU.EXE"), MakePath(SrcDir$,"SONY.ICO"), cmoOverwrite
  425.     CreateProgmanItem "Sony Sampler", "Read Me", "write "+MakePath(SrcDir$,"readme.wri"), "", cmoOverwrite
  426.  
  427. END SUB
  428.  
  429.  
  430. 
  431. 
  432.